package com.drg.center.controller;

import com.drg.center.entity.param.CaseListDTO;
import com.drg.center.entity.param.CaseRemindDTO;
import com.drg.center.entity.param.CostCheckDTO;
import com.drg.center.entity.param.DiagnosisCheckDTO;
import com.drg.center.entity.result.*;
import com.guaike.core.entity.result.Result;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*;

import javax.validation.Valid;
import java.util.List;

@Slf4j
@RestController
@RequestMapping("/openApi")
@Api(tags = "对接his接口组")
public class DrgHisController {

    @GetMapping("/syncPatientCaseList")
    @ApiOperation(value = "同步在院病例")
    public Result<List<PatientCaseVO>> syncPatientCaseList() {
        return null;
    }

    @GetMapping("/syncPatientCaseOutList")
    @ApiOperation(value = "同步出院病例")
    public Result<List<PatientCaseOutVO>> syncPatientCaseOutList(@Valid CaseListDTO param) {
        return null;
    }

    @GetMapping("/syncDiagnosisDict")
    @ApiOperation(value = "同步诊断字典")
    public Result<List<DiagnosisVO>> syncDiagnosisDict() {
        return null;
    }

    @GetMapping("/syncOperationDiagnosisDict")
    @ApiOperation(value = "同步手术诊断关联字典")
    public Result<List<OperationDiagnosisVO>> syncOperationDiagnosisDict() {
        return null;
    }

    @GetMapping("/syncOperationDict")
    @ApiOperation(value = "同步手术字典")
    public Result<List<OperationVO>> syncOperationDict() {
        return null;
    }

    @GetMapping("/syncDepart")
    @ApiOperation(value = "同步科室信息")
    public Result<List<DepartVO>> syncDepart() {
        return null;
    }

    @GetMapping("/syncDoctor")
    @ApiOperation(value = "同步医生信息")
    public Result<List<DoctorVO>> syncDoctor() {
        return null;
    }

    @GetMapping("/syncProject")
    @ApiOperation(value = "同步项目信息")
    public Result<List<ProjectVO>> syncProject() {
        return null;
    }

    @PostMapping("/syncPatientCaseRemind")
    @ApiOperation(value = "病例统一提醒")
    public Result<Boolean> syncPatientCaseRemind(@RequestBody @Valid CaseRemindDTO param) {
        return null;
    }


    //=================================================================//

    @GetMapping("/diagnosisCheck")
    @ApiOperation(value = "诊断输入校验")
    public Result<DiagnosisCheckVO> diagnosisCheck(@Valid DiagnosisCheckDTO param) {
        return null;
    }

    @GetMapping("/findCaseCost")
    @ApiOperation(value = "费用查询")
    public Result<CostCheckVO> findCaseCost(@Valid CostCheckDTO param) {
        return null;
    }
}
